package com.xtwy.rest.api;

import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

/**
 * @作 者: 侯建军
 * @日 期: 2018/8/3 21:42
 * @描 述:
 * @公 司：山西迅腾伟业
 */
@Service
public class  RestApiService {
    @Autowired
    RestTemplate restTemplate;
//    在hi()方法上加上@HystrixCommand注解。有了该注解hi()方法就启用了Hystrix熔断器的功能，
//    其中，fallbackMethod为处理回退（fallback）逻辑的方法。
    @HystrixCommand(fallbackMethod = "apiError")
    public String apiTest(String name){
        //调用manage服务中的接口：user/findByUsername/
        //其中：rx-manage为实例名
        return restTemplate.getForObject("http://rx-order/order?name="+name,String.class);
    }

    /**
     * 容错方法
     * @param name
     * @return
     */
    public String apiError(String name){
        return "有问题,"+name+",出错了!";
    }
}
